   Concentre.XForms_Element_Action_Abstract = Concentre.Class( Concentre.XForms_Element_Abstract, {
		innerActions: [],
		hasChanged: false,
   		options: {
   		
   		},
   		
   		initialize: function (elt,attributes,parent) {
 
 			this.element = elt;
 			this.attributes = attributes; 
   			this.parent = parent;
   			this.target  = this.parent.element;
   			this.innerActions = [];	
   			
			console.log(this.target);
			
			this.evt = this.attributes['{http://www.w3.org/2001/xml-events}event'];
   			
   			if (this.evt!=null) this.registerEvents('click');

   		},
 
 		handleEvent: function (evt) {
 			for (var i in this.innerActions) {
				this.innerActions[i].handleEvent(evt);
			}
	 	
	 		this.update();
		},
 		
 		update: function () {
			if (this.enclosedAction) return;
	
			var m = Concentre.Modules.XForms.defaultModel;
			var v = this.vertices;

			switch (m.doRebuild) {
				case -1 : // true bypass event flow 
					break;
				case false:
				case 0 : // false
					m.getSubGraph( v );
					break;
				case true:
				case 1:  //true using event flow 
					m.fireEvent('xforms-rebuild');
					break;
			}
	
			if (m.doRecalculate) m.fireEvent('xforms-recalculate'); 
			if (m.doRevalidate)  m.fireEvent('xforms-revalidate');
			if (m.doRefresh) m.fireEvent('xforms-refresh');
 		
 		
 		},
 		
		toString: function () {
			return '[ Object Concentré XForms Action Abstract ]';
		}	
   });    	
